﻿using BLevy.Negocio;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BLevy.UI
{
    public partial class frmSociosPosibleFechaCobroFiltro : Form
    {
        public frmSociosPosibleFechaCobroFiltro()
        {
            InitializeComponent();
        }

        private void IniciarControles()
        {
            txtNroCertificadoDesde.Text = string.Empty;
            txtNroCertificadoHasta.Text = string.Empty;

            cmbLocalidad.Enabled = false;
            cmbZona.Enabled = false;
        }

        private void GetLocalidades()
        {
            try
            {
                cmbLocalidad.ValueMember = "id";
                cmbLocalidad.DisplayMember = "localidad";
                cmbLocalidad.DataSource = Localidades.FindAll();

                if (cmbLocalidad.Items.Count != 0)
                {
                    FindZonasByLocalidad(Convert.ToInt32(cmbLocalidad.SelectedValue));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void FindZonasByLocalidad(int localidad_id)
        {
            try
            {
                cmbZona.ValueMember = "id";
                cmbZona.DisplayMember = "zona";
                cmbZona.DataSource = Negocio.Zonas.FindAll();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }


        private void frmSociosPosibleFechaCobroFiltro_Load(object sender, EventArgs e)
        {
            IniciarControles();
            GetLocalidades();
        }

        private void cmbLocalidad_SelectedIndexChanged(object sender, EventArgs e)
        {
            FindZonasByLocalidad(Convert.ToInt32(cmbLocalidad.SelectedValue));
        }

        private void cmbLocalidad_SelectionChangeCommitted(object sender, EventArgs e)
        {
            FindZonasByLocalidad(Convert.ToInt32(cmbLocalidad.SelectedValue));
        }

        private void chkZona_CheckedChanged(object sender, EventArgs e)
        {
            if(chkZona.CheckState == CheckState.Checked)
            {
                cmbZona.Enabled = true;
                cmbLocalidad.Enabled = true;
            }
            else
            {
                cmbLocalidad.Enabled = false;
                cmbZona.Enabled = false;
            }
        }

        private Boolean ValidarForm()
        {
            bool resultado = true;



            return resultado;
        }


        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if(ValidarForm() == true)
            {
                bool completo = chkCompleto.Checked;

                string cert_desde = txtNroCertificadoDesde.Text == string.Empty ? null : txtNroCertificadoDesde.Text;
                string cert_hasta = txtNroCertificadoHasta.Text == string.Empty ? null : txtNroCertificadoHasta.Text;

                int? localidad_id = chkZona.Checked ? (int?)cmbLocalidad.SelectedValue : null;
                int? zona_id = chkZona.Checked ? (int?)cmbZona.SelectedValue : null;

                frmSociosFechaPosibleCobroReporte frm = new frmSociosFechaPosibleCobroReporte(cert_desde, cert_hasta, localidad_id, zona_id, completo);
                frm.MdiParent = this.MdiParent;
                frm.Show();
            }
        }

        private void chkCompleto_CheckedChanged(object sender, EventArgs e)
        {
            if(chkCompleto.CheckState == CheckState.Checked)
            {
                txtNroCertificadoDesde.Text = string.Empty;
                txtNroCertificadoHasta.Text = string.Empty;

                cmbLocalidad.Enabled = false;
                cmbZona.Enabled = false;
                chkZona.CheckState = CheckState.Unchecked;
            }
        }

        private void txtNroCertificadoDesde_KeyPress(object sender, KeyPressEventArgs e)
        {
            error.Clear();
            if (!(char.IsNumber(e.KeyChar)) && (e.KeyChar != (char)Keys.Back))
            {
                error.SetError(txtNroCertificadoDesde, "Solo se permiten números en el campo Nro. Desde.");
                e.Handled = true;
                return;
            }
        }

        private void txtNroCertificadoHasta_KeyPress(object sender, KeyPressEventArgs e)
        {
            error.Clear();
            if (!(char.IsNumber(e.KeyChar)) && (e.KeyChar != (char)Keys.Back))
            {
                error.SetError(txtNroCertificadoHasta, "Solo se permiten números en el campo Nro. Hasta.");
                e.Handled = true;
                return;
            }
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }



    }
}
